1. Field of the Invention
A method, system, and program for using a table to determine an erase operation to perform in a manner consistent with system attributes.
2. Description of the Related Art
Different systems typically support different programs and features. The system attributes will often determine what actions are available to perform user specified operations. For instance, when a user specifies a secure erasure of data, the type of system will control what operations are taken to affect the secure erase of the data. In systems where an update to data is written to the same position on the physical space of the storage device including the data to update, a secure erase operation is performed by writing meaningless data, such as all zeros or ones, over the storage locations including the erased data to prevent any future access to the data. The storage locations subject to the erase operation may store data in a track or fixed block format.
Certain systems, such as the IBM RAMAC Virtual Array or ICEBERG disk storage systems** provide for a virtual disk architecture, also referred to as Log Structured Array (LSA) system, in which mappings provide virtual locations of the data. LSA tables map host tracks to disk array storage locations where the data is stored. When data is written to the system, it is compressed and compacted, assembled into fixed blocks, and written to the DASD. All write operations in virtual disk architecture are always directed to a new place in the disk array. An erase operation in the LSA environment involves a space release operation in which all the pointers that provide the mapping from the erased virtual location to physical locations are set to zero. The storage space addressed by those pointers are then freed and available for data. Any future attempt to access the erased track, or pointer to the track, would result in a return of a null pointer, as the pointer was erased. **ESA/390 is a trademark of IBM and RAMAC is a registered trademark of IBM; Iceberg is a registered trademark of Storage Technology Corporation.
Systems typically provide actions specific to the functions supported. However, some systems may allow for different operations to be performed by supporting multiple erase options and other data management operations. There is thus a need in the art for an improved system for performing operations, such as erase operations, that take into account all system functions affected by the erase operation to insure that no inconsistent actions are taken that would result in invalid states.
To overcome the limitations in the prior art described above, preferred embodiments disclose a method, system, program, and data structure for erasing data. A table is provided indicating different groupings of system functions. Each grouping indicates at least one system function. For each grouping there is code to perform erase operations. An erase command to erase data in at least one storage location is received. A determination is then made of the grouping having system functions supported by the system and the table is processed to determine the code for the determined grouping. The code for the determined grouping is executed to perform erase operations with respect to each storage location.
In further embodiments, one of the system functions is a point-in-time copy function that provides copy data structures that indicate data at source storage locations to copy to corresponding target source storage locations. The indication to copy with respect to the source and target storage locations is eliminated when the data is copied from the source storage location to the corresponding target storage location. The code associated with each grouping that includes the point-in-time copy function eliminates the indication to copy in the copy data structures for any source and target storage locations subject to the erase command.
In still further embodiments, the system functions include a first erase operation and a second erase operation. In such case, at least one grouping indicates at least the first and second erase operations as system functions. The code for each grouping indicating the first and second erase operations determines whether the first erase operation is available. If so, the first erase operation is used to implement the erase command. Otherwise, the second erase operation is used to implement the erase command.
Preferred embodiments provide a table to use to select a specific erase operation that is dependent on available system functions. When an erase operation occurs, the storage locations or tracks subject to the erase operation may also be subject to other data management operations, such as a point-in-time-copy operation. In such case, actions must be taken to ensure that the erase operation does not adversely affect these other data management operations in a manner that would produce inconsistent or invalid results. For this reason, the table specifies particular operations to perform dependent on the system functions available. In this way, any other data management operations will be appropriately adjusted to remain consistent with the erase operation being performed.